#include "users.h"





Users::Users()
{
    filename="users.dat";
    lastID=1;
    pthread_mutex_init(&mutex,NULL);
}

Users::~Users()
{

    pthread_mutex_destroy(&mutex);
}

int Users::newUser(string name, string pass){

    pthread_mutex_lock(&mutex);
     fstream plik;
   plik.open(filename.c_str(),ios::out | ios::app);
    if (!plik.is_open())
    {
        cout<<"nie mozna otworzyc pliku z uzytkownikami\n";
        pthread_mutex_unlock(&mutex);
        return 1;
    }

//    User uu;
//    uu.name=name;
//    uu.pass=pass;
//    userList.push_back(uu);

    string line = name + " " + pass;
    plik<<line<<endl;
    plik.close();

pthread_mutex_unlock(&mutex);
    return 0;
}

int Users::readFile(){
    pthread_mutex_lock(&mutex);
    userList.clear();

     fstream plik;
     plik.open(filename.c_str(),ios::in );
     if(!plik.is_open())
     {
         cout<<"nie ma pliku users\n";
         return-1;
     }
     string line;

     while(!plik.eof()){
         plik>>line;

         User uu;
         uu.name=line;
         plik>>line;
         uu.pass=line;
         userList.push_back(uu);

     }
     plik.close();
     pthread_mutex_unlock(&mutex);
    return 0;

}

int Users::login(string name, string pass){

    readFile();

    pthread_mutex_lock(&mutex);

    bool ok =false;
    for(int i=0;i<userList.size();i++)
    {
        if(userList.at(i).name == name)
            if(userList.at(i).pass == pass){
                ok=true;
                break;
            }

    }
    pthread_mutex_unlock(&mutex);

    if(!ok) return -1;

    return lastID++;



}
